brutalmariofandomcom-20200214-history
User blog:BantyoLeomon/Places to help get started on ASM
Due to a lack of updates on Brutal Mario, I was thinking that maybe you guys could make your own hacks as a past time. Of course, knowing you, you'd all want custom programmed stuff in it, which is kind of complex, but not impossible to learn. Efforts you make in ASM hacking can translate to other programming-related efforts easily, so don't feel as though this will be pointless. Learning the Basics Before dipping your toes in what's essentially readable machine code, I'd recommend learning the basics through high-level languages. A good language to get your feet wet is C due to how close it is to ASM. Pick up a good book like The C Programming Language, Second Edition and follow it through. If you have any questions, don't be afraid to google around. Use a good IDE like NetBeans or Eclipse for you to code in, I'm suggesting those because they come with compilers and whatnot, and are also free. Moving on to 65c816 Due to how ASM is quite complex, I'll just focus on showing you the basics for now and have the "big boy" stuff for when you have your bearings. Start out with Ersanio's Assembly for Super Mario World and Ersanio's Assembly for the SNES documents. These are entry-level tutorials for 65c816. Assembly for SMW details SMW focused uses, while Assembly for SNES details it more in-depth (but it still lacks some stuff, I believe). If you want to plunge further, I urge you to check out Programming the 65816 as you go along, as well. Making your own assets on SMW Now, to practice and become better at programming, you're going to have to, obviously, program. This is the fun part. For you to experiment around in SMW and truly "become carol" or whatever, try and follow these tutorials. *My Custom Blocks Tutorial *MarioFanGamer's Custom Sprite Tutorial *MercuryPenny's Hex Edit Tutorial *MarioFanGamer's Patching Tutorial And here are the insertion tutorials for you to also actually put the assets in game: *Telinc1's Block insertion tutorial *leod's Asar patching tutorial *MarioFanGamer's Sprite insertion tutorial Here's links to tools used as of this writing: *Gopher Popcorn Stew *PIXI *UberASM Tool *Asar *bsnes-plus Debugger, use this instead of Geiger's SNES9x debugger. *SMW's RAM Map *SMW's ROM Map Unfinished, but still useful. Addendum: UberASM Tool Now, UberASM Tool doesnt have a tutorial, but it basically serves as a way to load global, level only, overworld, or game mode ASM. It essentially serves as a successor to the old levelASM tools, used by people such as carol. In a nutshell, for levelASM, type the code you want into an asm file (there are samples included, so feel free to use them as a base), append it to a level ID in the list file (follow the instructions in the readme), and it should run. Addendum: Graphics To add graphics to your Blocks and Sprites, you're gonna have to use YY-CHR. Here is a tutorial on how to use it, and here is a tutorial on how to insert graphics made into it on your rom in Lunar Magic. Further Reading While I'm linking primarily to SMWC, their tutorials aren't perfect. This is where SNES documentation comes in. Sites such as Wikibooks, Superfamicom.org and RomHacking.net all have excellent documentation on the SNES hardware, and I advise reading them as well along your journey as a budding ASM hacker. SMWC also has quite a few more tutorials, for general hack making (level design), asset creation (ripping graphics, custom music) and for SMW-related ASM. You're also more than free to read codes from sprites, patches, blocks and UberASM there to help give you ideas on stuff to make, just make sure you absorb good coding practices (making your code readable, comments, optimization etc) as you do. Shex is also a good tool to use as a disassembler if you're trying to figure out how an SNES game works. Whether you're making something small, or trying to go ballistic, just do your best. When you're learning, you gotta try, try, try until you succeed. You'll need to put in most of the effort, but don't feel bad about using online resources like the RAM and ROM maps and google. Your early projects won't be on the level of carol, but as long as you keep trying, you'll get there eventually. Category:Blog posts